const express = require('express')
const path = require('path')
const app = express()
const fs = require('fs')

//访问端口
const accessPort = 8080
//访问路由10.155.223.132、10.141.223.79
const accessRoute = 'http://localhost:' + accessPort

//监听端口
app.listen(accessPort,()=>{console.log('Server running on ' + accessRoute + '/')})

//设置静态托管，开放./public路径下的所有文件
app.use(express.static(path.join(__dirname,'./public')))

//声明需要的方法

//筛选所有的图片路径
//读取该路径下的所有文件的文件路径
function readFiles(curr_path,arr) {
    //获取当前路径下的所有文件
    const files = fs.readdirSync(curr_path)
    // console.log('Path:' + curr_path)
    files.forEach(function (item) {
        //当前文件的文件路径
        itemPath = `${curr_path}/${item}`;
        let stat = fs.lstatSync(itemPath)
        //如果当前文件是文件夹，则递归查询该目录下的文件
        if (stat.isDirectory() === true) {
            readFiles(itemPath,arr)
        }
        else {
            //如果不是文件夹则存放该文件路径，但要去除.DS_Store这个文件
            if (itemPath.includes('.DS_Store')) {}
            else {arr.push(itemPath);}
        }
    })
}

//去除默认路径readPath
function modifyFileName(readPath,files_arr) {
    var reg = new RegExp(readPath);
    for (i=0;i<files_arr.length;i++) {
        files_arr[i] = files_arr[i].replace(reg,accessRoute)
    }
}

//获取所有图片的方法
function getAllImgs() {
    const arr = []    //存放文件名的数组
    //读取文件的路径
    readPath = './public'
    readFiles(readPath,arr)
    modifyFileName(readPath,arr)
    return arr
}
//获取所有的图片
app.get('/getAllImgs',(req,res) => {
    res.send(getAllImgs())
})

